package main

import "fmt"

// 父亲结构体
type Animal2 struct {
	Name string
}

func (a Animal2) run() {
	fmt.Printf("%v 在运动\n", a.Name)
}

// 子结构体(嵌套结构体时,
// 对象查找属性和结构体方法时,先从本结构体查询, 查找不到再从嵌套的结构体中查找)
type Dog2 struct {
	Age string

	// 结构体嵌套, 继承父结构体
	*Animal2
}

func (a Dog2) wang() {
	fmt.Printf("%v 在汪汪\n", a.Name)
}

func main() {
	var d = Dog2{
		Age: "10",
		Animal2: &Animal2{
			Name: "dog",
		},
	}
	d.run()
	d.wang()
}
